Crate image_compare

source ·
Expand description

Comparing gray images using structure

This crate allows to compare grayscale images using either structure or histogramming methods. The easiest use is loading two images, converting them to grayscale and running a comparison:

use image_compare::Algorithm;
let image_one = image::open("image1.png").expect("Could not find test-image").into_luma8();
let image_two = image::open("image2.png").expect("Could not find test-image").into_luma8();
let result = image_compare::gray_similarity_structure(&Algorithm::MSSIMSimple, &image_one, &image_two).expect("Images had different dimensions");

Check the Algorithm enum for implementation details

Comparing gray images using histogram

Histogram comparisons are possible using the histogram comparison function

use image_compare::Metric;
let image_one = image::open("image1.png").expect("Could not find test-image").into_luma8();
let image_two = image::open("image2.png").expect("Could not find test-image").into_luma8();
let result = image_compare::gray_similarity_histogram(Metric::Hellinger, &image_one, &image_two).expect("Images had different dimensions");

Comparing rgb images using hybrid mode

Histogram comparisons are possible using the histogram comparison function

let image_one = image::open("image1.png").expect("Could not find test-image").into_rgb8();
let image_two = image::open("image2.png").expect("Could not find test-image").into_rgb8();
let result = image_compare::rgb_hybrid_compare(&image_one, &image_two).expect("Images had different dimensions");

Check the Metric enum for implementation details

Enums

  • The enum for selecting a grayscale comparison implementation
  • The errors that can occur during comparison of the images
  • The distance metric choices for histogram comparisons

Traits

Functions

  • Comparing gray images using histogram
  • Comparing gray images using structure.
  • Comparing structure via MSSIM on Y channel, comparing color-diff-vectors on U and V summing the squares Please mind that the RGBSimilarity-Image does not contain plain RGB here
  • Comparing rgb images using structure. RGB structure similarity is performed by doing a channel split and taking the maximum deviation (minimum similarity) for the result. The image contains the complete deviations.

Type Aliases